<template>
  <!--楼层-->
  <div class="floor">
    <div class="py-container">
      <div class="title clearfix">
        <h3 class="fl">{{ data.name }}</h3>
        <div class="fr">
          <ul class="nav-tabs clearfix">
            <li :class="{ active: active == item.text }" v-for="item in data.navList" :key="item.text" @click="abc(item)">
              <a href="#tab1" data-toggle="tab">{{ item.text }}</a>
            </li>
          </ul>
        </div>
      </div>
      <div class="tab-content">
        <div class="tab-pane">
          <div class="floor-1">
            <div class="blockgary">
              <ul class="jd-list">
                <li v-for="name in data.keywords" :key="name">{{ name }}</li>
              </ul>
              <!-- 注意 在此处动态渲染图片,需要注意路径问题,由于使用本地服务器发送请求,需要在本地查找图片,所以图片资源加载需要到以index.html起点查找资源 -->
              <img :src="data.imgUrl" />
            </div>
            <div class="floorBanner">
              <div class="swiper-container" id="floor1Swiper" :class="sum">
                <div class="swiper-wrapper">
                  <div class="swiper-slide" v-for="item in data.carouselList" :key="item.id">
                    <img :src="item.imgUrl" />
                  </div>
                </div>
                <!-- 如果需要分页器 -->
                <div class="swiper-pagination"></div>

                <!-- 如果需要导航按钮 -->
                <div class="swiper-button-prev"></div>
                <div class="swiper-button-next"></div>
              </div>
            </div>
            <div class="split">
              <span class="floor-x-line"></span>
              <div class="floor-conver-pit">
                <img :src="data.recommendList[0]" />
              </div>
              <div class="floor-conver-pit">
                <img :src="data.recommendList[1]" />
              </div>
            </div>
            <div class="split center">
              <img src="./images/floor-1-4.png" />
            </div>
            <div class="split">
              <span class="floor-x-line"></span>
              <div class="floor-conver-pit">
                <img :src="data.recommendList[2]" />
              </div>
              <div class="floor-conver-pit">
                <img :src="data.recommendList[3]" />
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</template>
<script src="dist/js/swiper-bundle.min.js"></script>
<script>
import Swiper from "swiper"
// 引入Swiper实例
export default {
  name: "HomeFloor",
  // 传过来的活动属性是什么,props就是什么来接受.如果需要查看数据,需要在this.data这个活动属性上查看传过来的内容
  props: ["data", "sum"],
  data() {
    return {
      active: "",
    }
  },
  methods: {
    abc(item) {
      //  给点击的选项添加类名,添加类名后字体就会变红
      this.active = item.text
    },
  },
  // 在floors组件中,与ListContainer组件的区别是,ListContainer组件中,图片和swiper实例谁先完成的时机不确定,所以必须确保swiper实例在图片dom节点渲染完毕后创建实例.
  // 但是在floors组件中,组件创建是根据数据动态创建的,也就是说,先拿到图片数据,在创建的组件.此时,不存在图片拿不到的问题,没有发送请求等异步任务的情况
  // 所以在floors组件中,不需要像ListContainer那样,使用watch属性监听数据变化,数据渲染完毕后,立刻调用nextTick(()=>{})函数执行创建swiper实例.
  // 直接在组件挂载完成后创建swiper实例就行
  mounted() {
    // 创建一个实例对象
    // 由于floors是由数据动态创建的,里面的图片内容公用一个Swiper实例对象,会出现图片一跳一跳的.
    // 解决办法为,在创建floors组件时,将一个独一无二的值传来,然后在组件floors遍历的值时候,加上这个独一无二的属性,然后在Swiper实例对象中,添加监听的属性拼接上那个唯一值,这样遍历生成的floors用的都是自己的Swiper实例对象.
    new Swiper("." + this.sum, {
      // direction: "vertical", // 垂直切换选项
      loop: true, // 循环模式选项
      autoplay: {
        delay: 1000,
        stopOnLastSlide: false, //如果设置为true，当切换到最后一个slide时停止自动切换。（loop模式下无效）。
        disableOnInteraction: true, //用户操作swiper之后，是否禁止autoplay。默认为true：停止。如果设置为false，用户操作swiper之后自动切换不会停止，每次都会重新启动autoplay。操作包括触碰(touch)，拖动，点击pagination等。
      },
      // 如果需要分页器
      pagination: {
        el: ".swiper-pagination",
      },

      // 如果需要前进后退按钮
      navigation: {
        nextEl: ".swiper-button-next",
        prevEl: ".swiper-button-prev",
      },

      // 如果需要滚动条
      scrollbar: {
        el: ".swiper-scrollbar",
      },
    })
  },
}
</script>

<style lang="less" scoped>
.floor {
  margin-top: 15px;

  .py-container {
    width: 1200px;
    margin: 0 auto;

    .title {
      .fl {
        float: left;
        color: #c81623;
        font-size: 20px;
        line-height: 30px;
        margin: 9px 0;
        font-weight: 700;
      }

      .fr {
        float: right;

        .nav-tabs {
          margin: 10px 0 0;
          display: inline-block;

          li {
            float: left;
            line-height: 18px;

            a {
              padding-top: 1px;
              font-weight: 400;
              background-color: #fff;

              &::after {
                content: "|";
                padding: 0 10px;
              }
            }

            &:nth-child(7) {
              a {
                &::after {
                  content: "";
                }
              }
            }

            &.active {
              a {
                color: #e1251b;
              }
            }
          }
        }
      }
    }

    .tab-content {
      border-top: 2px solid #c81623;
      border-bottom: 1px solid #e4e4e4;

      .tab-pane {
        .floor-1 {
          height: 360px;
          display: flex;

          .blockgary {
            width: 210px;
            height: 100%;
            background: #f7f7f7;

            .jd-list {
              padding: 15px 0;
              overflow: hidden;

              li {
                list-style-type: none;
                float: left;
                width: 40%;
                margin: 0 10px;
                border-bottom: 1px solid #e4e4e4;
                text-align: center;
                line-height: 26px;
              }
            }

            img {
              width: 100%;
            }
          }

          .floorBanner {
            width: 330px;
            height: 100%;
          }

          .split {
            width: 220px;
            height: 100%;
            position: relative;

            .floor-x-line {
              position: absolute;
              background: #e4e4e4;
              width: 220px;
              height: 1px;
              top: 180px;
            }

            .floor-conver-pit {
              width: 100%;
              height: 50%;

              img {
                width: 100%;
                height: 100%;
                transition: all 400ms;

                &:hover {
                  opacity: 0.8;
                }
              }
            }
          }

          .center {
            border: 1px solid #e4e4e4;
          }
        }
      }
    }
  }
}
</style>
